package com.yjht.online.arg.reslove.impl;

import com.yjht.online.arg.ArgParam;
import com.yjht.online.arg.excption.ArgError;
import com.yjht.online.arg.reslove.ArgResloveByKey;
import com.yjht.online.arg.reslove.ArgResloveSplite;

import java.util.ArrayList;
import java.util.List;

public class ArgKeyReslove extends ArgResloveSplite {

    List<ArgResloveByKey> argResloveByKeys = new ArrayList<>();

    public void register(ArgResloveByKey orgInfoReslove) {
        argResloveByKeys.add(orgInfoReslove);
    }

    @Override
    protected void reslove(ArgParam argParam, String argName, List<String> argValue) {
        argResloveByKeys.forEach(reslove -> {
            String key = argName.substring(1);
            if (reslove.support(key)) {
                try {
                    reslove.resolve(argParam,key, argValue);
                } catch (ArgError argError) {
                    argError.printStackTrace();
                }
            }

        });
    }


}
